#ifndef FGE_AUDIO_HPP
#define FGE_AUDIO_HPP

#include <string>

struct Mix_Chunk;
typedef struct _Mix_Music Mix_Music;

namespace fge
{

class SoundEffect
{
public:
	~SoundEffect();

	static SoundEffect* FromFile(const std::string &fileName);

	Mix_Chunk* GetSoundData() const { return mixChunk; }

protected:
	SoundEffect() : mixChunk(0) { }

	Mix_Chunk *mixChunk;
};

class Song
{
public:
	~Song();

	static Song* FromFile(const std::string &fileName);

	Mix_Music* GetSongData() const { return mixMusic; }

protected:
	Song() : mixMusic(0) { }

	Mix_Music *mixMusic;
};

}

#endif//FGE_AUDIO_HPP

